home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / a_man / cat1 / mtrace.z / mtrace
Encoding:
Text File  |  2002-10-03  |  21.0 KB  |  397 lines

  1.  
  2.  
  3.  
  4. MMMMTTTTRRRRAAAACCCCEEEE((((1111MMMM))))                                                          MMMMTTTTRRRRAAAACCCCEEEE((((1111MMMM))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      mtrace - print multicast path from a source to a receiver
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      ////uuuussssrrrr////eeeettttcccc////mmmmttttrrrraaaacccceeee [ ----gggg _g_a_t_e_w_a_y ] [ ----iiii _i_f__a_d_d_r ] [ ----llll ] [ ----MMMM ] [ ----mmmm _m_a_x__h_o_p_s
  13.      ] [ ----nnnn ] [ ----pppp ] [ ----qqqq _n_q_u_e_r_i_e_s ] [ ----rrrr _r_e_s_p__d_e_s_t ] [ ----ssss ] [ ----tttt _t_t_l ] [ ----wwww
  14.      _w_a_i_t_t_i_m_e ] _s_o_u_r_c_e [ _r_e_c_e_i_v_e_r ] [ _g_r_o_u_p ]
  15.  
  16. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  17.      Assessing problems in the distribution of IP multicast traffic can be
  18.      difficult.  mmmmttttrrrraaaacccceeee utilizes a tracing feature implemented in multicast
  19.      routers (mmmmrrrroooouuuutttteeeedddd version 3.3 and later) that is accessed via an extension
  20.      to the IGMP protocol.  A trace query is passed hop-by-hop along the
  21.      reverse path from the _r_e_c_e_i_v_e_r to the _s_o_u_r_c_e, collecting hop addresses,
  22.      packet counts, and routing error conditions along the path, and then the
  23.      response is returned to the requestor.
  24.  
  25.      The only required parameter is the _s_o_u_r_c_e host name or address.  The
  26.      default _r_e_c_e_i_v_e_r is the host running mtrace, and the default _g_r_o_u_p is
  27.      "MBone Audio" (224.2.0.1), which is sufficient if packet loss statistics
  28.      for a particular multicast group are not needed.  These two optional
  29.      parameters may be specified to test the path to some other receiver in a
  30.      particular group, subject to some constraints as detailed below.  The two
  31.      parameters can be distinguished because the _r_e_c_e_i_v_e_r is a unicast address
  32.      and the _g_r_o_u_p is a multicast address.
  33.  
  34. OOOOPPPPTTTTIIIIOOOONNNNSSSS
  35.      ----gggg _g_w_y  Send the trace query via unicast directly to the multicast router
  36.              _g_w_y rather than multicasting the query.  This must be the last-
  37.              hop router on the path from the intended _s_o_u_r_c_e to the _r_e_c_e_i_v_e_r.
  38.  
  39.              _C_A_U_T_I_O_N!!   Version 3.3 of mmmmrrrroooouuuutttteeeedddd will crash if a trace query is
  40.                          received via a unicast packet and mmmmrrrroooouuuutttteeeedddd has no
  41.                          route for the _s_o_u_r_c_e address.  Therefore, do not use
  42.                          the ----gggg option unless the target mmmmrrrroooouuuutttteeeedddd has been
  43.                          verified to be newer than 3.3.
  44.  
  45.      ----iiii _a_d_d_r Use _a_d_d_r as the local interface address (on a multi-homed host)
  46.              for sending the trace query and as the default for the _r_e_c_e_i_v_e_r
  47.              and the response destination.
  48.  
  49.      ----llll      Loop indefinitely printing packet rate and loss statistics for
  50.              the multicast path every 10 seconds.
  51.  
  52.      ----MMMM      Always send the response using multicast rather than attempting
  53.              unicast first.
  54.  
  55.      ----mmmm _n    Set to _n the maximum number of hops that will be traced from the
  56.              _r_e_c_e_i_v_e_r back toward the _s_o_u_r_c_e.  The default is 32 hops
  57.              (infinity for the DVMRP routing protocol).
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. MMMMTTTTRRRRAAAACCCCEEEE((((1111MMMM))))                                                          MMMMTTTTRRRRAAAACCCCEEEE((((1111MMMM))))
  71.  
  72.  
  73.  
  74.      ----nnnn      Print hop addresses numerically rather than symbolically and
  75.              numerically (saves a nameserver address-to-name lookup for each
  76.              router found on the path).
  77.  
  78.      ----qqqq _n    Set the maximum number of query attempts for any hop to _n.  The
  79.              default is 3.
  80.  
  81.      ----pppp      Listen passively for multicast responses from traces initiated by
  82.              others (not implemented yet).
  83.  
  84.      ----rrrr _h_o_s_t Send the trace response to _h_o_s_t rather than to the host on which
  85.              mmmmttttrrrraaaacccceeee is being run, or to a multicast address other than the one
  86.              registered for this purpose (224.0.1.32).
  87.  
  88.      ----ssss      Print a short form output including only the multicast path and
  89.              not the packet rate and loss statistics.
  90.  
  91.      ----tttt _t_t_l  Set the _t_t_l (time-to-live, or number of hops) for multicast trace
  92.              queries and responses.  The default is 64, except for local
  93.              queries to the "all routers" multicast group which use ttl 1.
  94.  
  95.      ----wwww _n    Set the time to wait for a trace response to _n seconds (default 3
  96.              seconds).
  97.  
  98. UUUUSSSSAAAAGGGGEEEE
  99.    HHHHoooowwww IIIItttt WWWWoooorrrrkkkkssss
  100.      The technique used by the ttttrrrraaaacccceeeerrrroooouuuutttteeee tool to trace unicast network paths
  101.      will not work for IP multicast because ICMP responses are specifically
  102.      forbidden for multicast traffic.  Instead, a tracing feature has been
  103.      built into the multicast routers.  This technique has the advantage that
  104.      additional information about packet rates and losses can be accumulated
  105.      while the number of packets sent is minimized.
  106.  
  107.      Since multicast uses reverse path forwarding, the trace is run backwards
  108.      from the _r_e_c_e_i_v_e_r to the _s_o_u_r_c_e.  A trace query packet is sent to the
  109.      last hop multicast router (the leaf router for the desired _r_e_c_e_i_v_e_r
  110.      address).  The last hop router builds a trace response packet, fills in a
  111.      report for its hop, and forwards the trace packet using unicast to the
  112.      router it believes is the previous hop for packets originating from the
  113.      specified _s_o_u_r_c_e.  Each router along the path adds its report and
  114.      forwards the packet.  When the trace response packet reaches the first
  115.      hop router (the router that is directly connected to the source's net),
  116.      that router sends the completed response to the response destination
  117.      address specified in the trace query.
  118.  
  119.      If some multicast router along the path does not implement the multicast
  120.      traceroute feature or if there is some outage, then no response will be
  121.      returned.  To solve this problem, the trace query includes a maximum hop
  122.      count field to limit the number of hops traced before the response is
  123.      returned.  That allows a partial path to be traced.
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. MMMMTTTTRRRRAAAACCCCEEEE((((1111MMMM))))                                                          MMMMTTTTRRRRAAAACCCCEEEE((((1111MMMM))))
  137.  
  138.  
  139.  
  140.      The reports inserted by each router contain not only the address of the
  141.      hop, but also the ttl required to forward and some flags to indicate
  142.      routing errors, plus counts of the total number of packets on the
  143.      incoming and outgoing interfaces and those forwarded for the specified
  144.      _g_r_o_u_p.  Taking differences in these counts for two traces separated in
  145.      time and comparing the output packet counts from one hop with the input
  146.      packet counts of the next hop allows the calculation of packet rate and
  147.      packet loss statistics for each hop to isolate congestion problems.
  148.  
  149.    FFFFiiiinnnnddddiiiinnnngggg tttthhhheeee LLLLaaaasssstttt----HHHHoooopppp RRRRoooouuuutttteeeerrrr
  150.      The trace query must be sent to the multicast router which is the last
  151.      hop on the path from the _s_o_u_r_c_e to the _r_e_c_e_i_v_e_r.  If the receiver is on
  152.      the local subnet (as determined using the subnet mask), then the default
  153.      method is to multicast the trace query to all-routers.mcast.net
  154.      (224.0.0.2) with a ttl of 1.  Otherwise, the trace query is multicast to
  155.      the _g_r_o_u_p address since the last hop router will be a member of that
  156.      group if the receiver is.  Therefore it is necessary to specify a group
  157.      that the intended receiver has joined.  This multicast is sent with a
  158.      default ttl of 64, which may not be sufficient for all cases (changed
  159.      with the ----tttt option).  If the last hop router is known, it may also be
  160.      addressed directly using the ----gggg option).  Alternatively, if it is desired
  161.      to trace a group that the receiver has not joined, but it is known that
  162.      the last-hop router is a member of another group, the ----gggg option may also
  163.      be used to specify a different multicast address for the trace query.
  164.  
  165.      When tracing from a multihomed host or router, the default receiver
  166.      address may not be the desired interface for the path from the source.
  167.      In that case, the desired interface should be specified explicitly as the
  168.      _r_e_c_e_i_v_e_r.
  169.  
  170.    DDDDiiiirrrreeeeccccttttiiiinnnngggg tttthhhheeee RRRReeeessssppppoooonnnnsssseeee
  171.      By default, mmmmttttrrrraaaacccceeee first attempts to trace the full reverse path, unless
  172.      the number of hops to trace is explicitly set with the ----mmmm option.  If
  173.      there is no response within a 3 second timeout interval (changed with the
  174.      ----wwww option), a "*" is printed and the probing switches to hop-by-hop mode.
  175.      Trace queries are issued starting with a maximum hop count of one and
  176.      increasing by one until the full path is traced or no response is
  177.      received.  At each hop, multiple probes are sent (default is three,
  178.      changed with ----qqqq option).  The first half of the attempts (default is one)
  179.      are made with the unicast address of the host running mmmmttttrrrraaaacccceeee as the
  180.      destination for the response.  Since the unicast route may be blocked,
  181.      the remainder of attempts request that the response be multicast to
  182.      mtrace.mcast.net (224.0.1.32) with the ttl set to 32 more than what's
  183.      needed to pass the thresholds seen so far along the path to the receiver.
  184.      For the last quarter of the attempts (default is one), the ttl is
  185.      increased by another 32 each time up to a maximum of 192.  Alternatively,
  186.      the ttl may be set explicitly with the ----tttt option and/or the initial
  187.      unicast attempts can be forced to use multicast instead with the ----MMMM
  188.      option.  For each attempt, if no response is received within the timeout,
  189.      a "*" is printed.  After the specified number of attempts have failed,
  190.      mmmmttttrrrraaaacccceeee will try to query the next hop router with a DVMRP_ASK_NEIGHBORS2
  191.      request (as used by the mmmmrrrriiiinnnnffffoooo program) to see what kind of router it is.
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. MMMMTTTTRRRRAAAACCCCEEEE((((1111MMMM))))                                                          MMMMTTTTRRRRAAAACCCCEEEE((((1111MMMM))))
  203.  
  204.  
  205.  
  206. EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
  207.      The output of mmmmttttrrrraaaacccceeee is in two sections.  The first section is a short
  208.      listing of the hops in the order they are queried, that is, in the
  209.      reverse of the order from the _s_o_u_r_c_e to the _r_e_c_e_i_v_e_r.  For each hop, a
  210.      line is printed showing the hop number (counted negatively to indicate
  211.      that this is the reverse path); the multicast routing protocol (DVMRP,
  212.      MOSPF, PIM, etc.); the threshold required to forward data (to the
  213.      previous hop in the listing as indicated by the up-arrow character); and
  214.      the cumulative delay for the query to reach that hop (valid only if the
  215.      clocks are synchronized).  This first section ends with a line showing
  216.      the round-trip time which measures the interval from when the query is
  217.      issued until the response is received, both derived from the local system
  218.      clock.  A sample use and output might be:
  219.  
  220.      oak.isi.edu 80# mtrace -l caraway.lcs.mit.edu 224.2.0.3
  221.      Mtrace from 18.26.0.170 to 128.9.160.100 via group 224.2.0.3
  222.      Querying full reverse path...
  223.        0  oak.isi.edu (128.9.160.100)
  224.       -1  cub.isi.edu (128.9.160.153)  DVMRP  thresh^ 1  3 ms
  225.       -2  la.dart.net (140.173.128.1)  DVMRP  thresh^ 1  14 ms
  226.       -3  dc.dart.net (140.173.64.1)  DVMRP  thresh^ 1  50 ms
  227.       -4  bbn.dart.net (140.173.32.1)  DVMRP  thresh^ 1  63 ms
  228.       -5  mit.dart.net (140.173.48.2)  DVMRP  thresh^ 1  71 ms
  229.       -6  caraway.lcs.mit.edu (18.26.0.170)
  230.      Round trip time 124 ms
  231.  
  232.      The second section provides a pictorial view of the path in the forward
  233.      direction with data flow indicated by arrows pointing downward and the
  234.      query path indicated by arrows pointing upward.  For each hop, both the
  235.      entry and exit addresses of the router are shown if different, along with
  236.      the initial ttl required on the packet in order to be forwarded at this
  237.      hop and the propagation delay across the hop assuming that the routers at
  238.      both ends have synchronized clocks.  The right half of this section is
  239.      composed of several columns of statistics in two groups.  Within each
  240.      group, the columns are the number of packets lost, the number of packets
  241.      sent, the percentage lost, and the average packet rate at each hop.
  242.      These statistics are calculated from differences between traces and from
  243.      hop to hop as explained above.  The first group shows the statistics for
  244.      all traffic flowing out the interface at one hop and in the interface at
  245.      the next hop.  The second group shows the statistics only for traffic
  246.      forwarded from the specified _s_o_u_r_c_e to the specified _g_r_o_u_p.
  247.  
  248.      These statistics are shown on one or two lines for each hop.  Without any
  249.      options, this second section of the output is printed only once,
  250.      approximately 10 seconds after the initial trace.  One line is shown for
  251.      each hop showing the statistics over that 10-second period.  If the ----llll
  252.      option is given, the second section is repeated every 10 seconds and two
  253.      lines are shown for each hop.  The first line shows the statistics for
  254.      the last 10 seconds, and the second line shows the cumulative statistics
  255.      over the period since the initial trace, which is 101 seconds in the
  256.      example below.  The second section of the output is omitted if the ----ssss
  257.      option is set.
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.                                                                              4444
  263.  
  264.  
  265.  
  266.  
  267.  
  268. MMMMTTTTRRRRAAAACCCCEEEE((((1111MMMM))))                                                          MMMMTTTTRRRRAAAACCCCEEEE((((1111MMMM))))
  269.  
  270.  
  271.  
  272.      Waiting to accumulate statistics... Results after 101 seconds:
  273.  
  274.        Source       Response Dest  Packet Statistics For  Only For Traffic
  275.      18.26.0.170    128.9.160.100  All Multicast Traffic  From 18.26.0.170
  276.           |       __/ rtt  125 ms  Lost/Sent = Pct  Rate    To 224.2.0.3
  277.           v      /    hop   65 ms  ---------------------  ------------------
  278.      18.26.0.144
  279.      140.173.48.2   mit.dart.net
  280.           |     ^     ttl    1      0/6    = --%   0 pps   0/2  = --%  0 pps
  281.           v     |     hop    8 ms   1/52   =  2%   0 pps   0/18 =  0%  0 pps
  282.      140.173.48.1
  283.      140.173.32.1   bbn.dart.net
  284.           |     ^     ttl    2      0/6    = --%   0 pps   0/2  = --%  0 pps
  285.           v     |     hop   12 ms   1/52   =  2%   0 pps   0/18 =  0%  0 pps
  286.      140.173.32.2
  287.      140.173.64.1   dc.dart.net
  288.           |     ^     ttl    3      0/271  =  0%  27 pps   0/2  = --%  0 pps
  289.           v     |     hop   34 ms  -1/2652 =  0%  26 pps   0/18 =  0%  0 pps
  290.      140.173.64.2
  291.      140.173.128.1  la.dart.net
  292.           |     ^     ttl    4     -2/831  =  0%  83 pps   0/2  = --%  0 pps
  293.           v     |     hop   11 ms  -3/8072 =  0%  79 pps   0/18 =  0%  0 pps
  294.      140.173.128.2
  295.      128.9.160.153  cub.isi.edu
  296.           |      \__  ttl    5        833         83 pps     2         0 pps
  297.           v         \ hop   -8 ms     8075        79 pps     18        0 pps
  298.      128.9.160.100  128.9.160.100
  299.        Receiver     Query Source
  300.  
  301.      Because the packet counts may be changing as the trace query is
  302.      propagating, there may be small errors (off by 1 or 2) in these
  303.      statistics.  However, those errors should not accumulate, so the
  304.      cumulative statistics line should increase in accuracy as a new trace is
  305.      run every 10 seconds.  There are two sources of larger errors, both of
  306.      which show up as negative losses:
  307.  
  308.           +o  If the input to a node is from a multi-access network with more
  309.              than one other node attached, then the input count will be (close
  310.              to) the sum of the output counts from all the attached nodes, but
  311.              the output count from the previous hop on the traced path will be
  312.              only part of that.  Hence the output count minus the input count
  313.              will be negative.
  314.           +o  In release 3.3 of the DVMRP multicast forwarding software for
  315.              SunOS and other systems, a multicast packet generated on a router
  316.              will be counted as having come in an interface even though it did
  317.              not.  This creates the negative loss that can be seen in the
  318.              example above.
  319.  
  320.      Note that these negative losses may mask positive losses.
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. MMMMTTTTRRRRAAAACCCCEEEE((((1111MMMM))))                                                          MMMMTTTTRRRRAAAACCCCEEEE((((1111MMMM))))
  335.  
  336.  
  337.  
  338.      In the example, there is also one negative hop time.  This simply
  339.      indicates a lack of synchronization between the system clocks across that
  340.      hop.  This example also illustrates how the percentage loss is shown as
  341.      two dashes when the number of packets sent is less than 10 because the
  342.      percentage would not be statistically valid.
  343.  
  344.      A second example shows a trace to a receiver that is not local; the query
  345.      is sent to the last-hop router with the ----gggg option.  In this example, the
  346.      trace of the full reverse path resulted in no response because there was
  347.      a node running an old version of mmmmrrrroooouuuutttteeeedddd that did not implement the
  348.      multicast traceroute function, so mmmmttttrrrraaaacccceeee switched to hop-by-hop mode.
  349.      The "Route pruned" error code indicates that traffic for group
  350.      224.2.143.24 would not be forwarded.
  351.  
  352.      oak.isi.edu 108# mtrace -g 140.173.48.2 204.62.246.73 \
  353.                                 butter.lcs.mit.edu 224.2.143.24
  354.      Mtrace from 204.62.246.73 to 18.26.0.151 via group 224.2.143.24
  355.      Querying full reverse path... * switching to hop-by-hop:
  356.        0  butter.lcs.mit.edu (18.26.0.151)
  357.       -1  jam.lcs.mit.edu (18.26.0.144)  DVMRP  thresh^ 1  33 ms  Route pruned
  358.       -2  bbn.dart.net (140.173.48.1)  DVMRP  thresh^ 1  36 ms
  359.       -3  dc.dart.net (140.173.32.2)  DVMRP  thresh^ 1  44 ms
  360.       -4  darpa.dart.net (140.173.240.2)  DVMRP  thresh^ 16  47 ms
  361.       -5  * * * noc.hpc.org (192.187.8.2) [mrouted 2.2] didn't respond
  362.      Round trip time 95 ms
  363.  
  364. AAAAUUUUTTTTHHHHOOOORRRR
  365.      Implemented by Steve Casner based on an initial prototype written by Ajit
  366.      Thyagarajan.  The multicast traceroute mechanism was designed by Van
  367.      Jacobson with help from Steve Casner, Steve Deering, Dino Farinacci, and
  368.      Deb Agrawal; it was implemented in mmmmrrrroooouuuutttteeeedddd by Ajit Thyagarajan and Bill
  369.      Fenner.  The option syntax and the output format of mmmmttttrrrraaaacccceeee are modeled
  370.      after the unicast ttttrrrraaaacccceeeerrrroooouuuutttteeee program written by Van Jacobson.
  371.  
  372. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  373.      mmmmrrrroooouuuutttteeeedddd(1m),,,, ttttrrrraaaacccceeeerrrroooouuuutttteeee(1m)
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.